//
//  RSAPublicKeyEncryptor.h
//  Tunnel
//
//  Created by wbb on 2025/6/9.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface RSAPublicKeyEncryptor : NSObject

/**
 * 使用PEM格式的公钥字符串初始化
 * @param publicKeyPEM PEM格式的公钥字符串（包含-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----）
 */
- (instancetype)initWithPublicKeyPEM:(NSString *)publicKeyPEM;

/**
 * 使用Base64编码的公钥数据初始化
 * @param publicKeyBase64 Base64编码的公钥数据（不包含PEM头和尾）
 */
- (instancetype)initWithPublicKeyBase64:(NSString *)publicKeyBase64;

/**
 * 加密字符串
 * @param plainText 待加密的明文
 * @return 加密后的Base64编码字符串，失败返回nil
 */
- (NSString *)encryptString:(NSString *)plainText;

/**
 * 加密数据
 * @param plainData 待加密的二进制数据
 * @return 加密后的二进制数据，失败返回nil
 */
- (NSData *)encryptData:(NSData *)plainData;
@end

NS_ASSUME_NONNULL_END
